主题
键盘模块总览 - Overview
本分类做什么
模拟 按键、文本串、等待按键,以及 锁定前台输入。与 鼠标 并列;虚拟键码 vk 与 字符 char 两套 API 并存,适用场景不同;VK 取值可查阅 虚拟键码表。
一、虚拟键码 vs 字符
| 类型 | 代表接口 | 差异 |
|---|---|---|
| VK 码 | KeyPress、KeyDown、KeyUp | 使用 虚拟键码(如回车、方向键、F 键),适合游戏/全局热键类场景。 |
| 字符 | KeyPressChar、KeyDownChar、KeyUpChar | 按 字符 发送,适合输入框打可见文本(仍受焦点与输入法影响)。 |
| 字符串 | KeyPressStr | 一次发送 字符串(编码见 SetDefaultEncode 等)。 |
选型:已知 VK → KeyPress(数值见 虚拟键码表);已知 可见字符 → KeyPressChar 或 KeyPressStr;需 长按 → KeyDown…延时…KeyUp。
二、阻塞等待
| 接口 | 说明 |
|---|---|
| WaitKey | 阻塞 直到用户按键或超时(参数见详情页),用于脚本暂停或人机确认。 |
与热键区别:WaitKey 是 脚本内同步等待;快捷键 是 异步回调。
三、锁定输入
| 接口 | 说明 |
|---|---|
| LockInput | 锁定或解除 前台键鼠;行为与 SetConfigByKey 的 InputLock 一致,二选一即可,勿重复混用导致状态难查。 |
四、键码表稳定(VK 映射)
| 接口 | 说明 |
|---|---|
| BuildKeyCodeTableStable | 建立或刷新内部虚拟键码/扫描码映射,减轻布局切换、远程会话等场景下 VK 系列错键或未生效。 |
选型:vk 模拟且环境易变时在布局变化后调用一次;字符输入仍优先 KeyPressChar/KeyPressStr。
五、虚拟键码速查(数据表)
| 文档 | 说明 |
|---|---|
| 虚拟键码表 | Constant / 十六进制 / 十进制 / 中文说明 对照表,并含 KeyPressCharMap(字符串键 → 数值);供 KeyPress / KeyDown / KeyUp 填写 vk_code 时查阅。 |
六、快速选型
| 需求 | 建议 |
|---|---|
| 组合键 Ctrl+V | 多次 KeyDown/KeyUp 或查是否有一键封装(以版本为准) |
| 向输入框打字 | KeyPressStr 或 KeyPressChar |
| 脚本等人按任意键继续 | WaitKey |
| 防止用户干扰前台 | LockInput(1),结束务必 LockInput(0) |
| 查某个键的十六进制 / 十进制 VK | 虚拟键码表 |
| VK 模拟在切布局/输入法后偶发错键 | 调用一次 BuildKeyCodeTableStable(见详情) |
七、相关分类
- 鼠标:点击与键盘常组合使用。
- 窗口 - SendStringEx:部分场景 发文本到窗口 比模拟键码更稳。
